home *** CD-ROM | disk | FTP | other *** search
/ Internet Surfer: Getting Started / Internet Surfer - Getting Started (Wayzata Technology)(7231)(1995).bin / pc / textfile / mac_faqs / ps_faq / part1_4 next >
Internet Message Format  |  1995-01-30  |  35KB

  1. Xref: bloom-picayune.mit.edu comp.lang.postscript:16093 news.answers:4298
  2. Newsgroups: comp.lang.postscript,news.answers
  3. Path: bloom-picayune.mit.edu!enterpoop.mit.edu!usc!wupost!uunet!brunix!brunix!jgm
  4. From: jgm@cs.brown.edu (Jonathan Monsarrat)
  5. Subject: PostScript monthly FAQ v2.01 11-30-92 [01-04 of 12]
  6. Supercedes: <1992Oct29.203929.24694@cs.brown.edu>
  7. Message-ID: <1992Dec1.044249.13508@cs.brown.edu>
  8. Followup-To: poster
  9. Summary: Useful facts about the PostScript graphics programming language
  10. Sender: news@cs.brown.edu
  11. Reply-To: jgm@cs.brown.edu (PostScript FAQ comments address)
  12. Organization: Brown University Department of Computer Science
  13. Date: Tue, 1 Dec 1992 04:42:49 GMT
  14. Approved: news-answers-request@MIT.Edu
  15. Expires: Thu, 31 Dec 1992 00:00:00 GMT
  16. Lines: 849
  17.  
  18. Archive-name: postscript-faq/part1-4
  19. Last-modified: 1992/11/30
  20. Version: 2.01
  21.  
  22.                               -- PostScript -- 
  23.  
  24.                             Answers to Questions 
  25.  
  26.                    (the comp.lang.postscript FAQ v2.01) 
  27.  
  28.                                Jon Monsarrat 
  29.  
  30.                               jgm@cs.brown.edu 
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.                      This FAQ is formatted as a digest. 
  38.  
  39.                 Most news readers can skip from one question 
  40.  
  41.                      to the next by pressing control-G. 
  42.  
  43.  
  44.     Changes since the last version are marked with a '|' in the table 
  45.     of contents and in the sections in the text-only format of the FAQ. 
  46.  
  47.     Please help fix the FAQ! All comments should be mailed to 
  48.     jgm@cs.brown.edu. My favorite way to receive a change suggestion is 
  49.     when it is accompanied by a section of the FAQ that is edited and 
  50.     mailed to me verbatim as an example. If you would like to 
  51.     contribute, please read the section ``about the FAQ'' first. Thank 
  52.     you! 
  53.  
  54.     Books and programs are referred to by name only. See the 
  55.     appropriate sections for full information. 
  56.  
  57.     Related FAQs: comp.text, comp.text.tex, comp.fonts, comp.graphics, 
  58.  
  59.     Table of Contents 
  60.  
  61.  
  62.     This FAQ has 12 sections. It is available by anonymous ftp to 
  63.     wilma.cs.brown.edu:pub/comp.lang.postscript in ASCII, LaTeX, DVI, 
  64.     and PostScript formats. 
  65.  
  66.   
  67.       1 General Questions 
  68.           1.1 What is PostScript? 
  69.           1.2 How can I tell how many pages my document will have? 
  70.           1.3 How can I print just one page or a few pages from a big 
  71.           1.4 How can I print more than one page per sheet of paper? 
  72.           1.5 How can I edit a PostScript picture? 
  73.           1.6 How can I print PostScript on a non-PostScript printer? 
  74.       2 Printers 
  75.           2.1 How can I get my printer to talk back to me? 
  76.           2.2 Should I leave my printer on? 
  77.           2.3 How do I suppress the power-on start page? 
  78. |         2.4 How do I make a downloaded font ``persistent''? 
  79.           2.5 How do I remove a persistent (``permanent'') downloaded font? 
  80.           2.6 How do I reset the printer without power-cycling? 
  81.           2.7 About saving files 
  82. |         2.8 What's the control-D business? 
  83. |         2.9 Why does the printer say ``still busy'' when my document is 
  84.           2.10 How should I set up my spoolers? 
  85. |         2.11 What are PPD files? 
  86.       3 Formats and Conversions 
  87.           3.1 How can I convert PostScript to some other graphics format? 
  88.           3.2 How can I convert DVI to PostScript? 
  89.           3.3 How can I convert HP Laserjet language (PCL) to PostScript? 
  90.           3.4 How can I convert TeX PK format to PostScript? 
  91.           3.5 How do I embed PostScript into troff? 
  92.           3.6 How do I embed PostScript into LaTeX or TeX? 
  93.           3.7 How can I convert an image to PostScript? 
  94.           3.8 How can I convert ASCII text to PostScript? 
  95. |         3.9 How can I convert PostScript to ASCII? 
  96.       4 Fonts 
  97. |         4.1 What are .PFB and .PFA files? 
  98.           4.2 How can I convert a PostScript font to TeX's PK format? 
  99.           4.3 Why are Adobe fonts hidden? 
  100.           4.4 How do I get bitmap representations of Adobe fonts? 
  101.           4.5 What are some good ftp sites for fonts? 
  102.           4.6 How can I re-encode a font? 
  103.           4.7 What's the difference between a Type 1 and a Type 3 font? 
  104. |         4.8 What vendors sell fonts for PostScript printers? 
  105.           4.9 What are ATM fonts? 
  106.           4.10 What are Multiple Master Fonts? 
  107.           4.11 Do I need a Level Two printer to use Multiple Master Fonts? 
  108.           4.12 What are Type 4 fonts? 
  109.           4.13 What are Type 5 fonts? 
  110.       5 Books 
  111. |         5.1 Books 
  112. |         5.2 Publishers 
  113.       6 About Adobe 
  114.           6.1 How do I get in touch with Adobe? 
  115.           6.2 What can Adobe do for me? 
  116.       7 Programming in PostScript 
  117.           7.1 What is PostScript level 2? 
  118.           7.2 Should I learn level 2 PostScript? 
  119.           7.3 Where can I find examples of PostScript code? 
  120.           7.4 How do I get the physical size of a page? 
  121.           7.5 Why can't I do a pathforall after a charpath ? 
  122.           7.6 How do I center a string of text around a point? 
  123.           7.7 How can I concatenate two strings together? 
  124. |         7.8 What do I do when I get stack overflow/underflow? 
  125.           7.9 The Obfuscated PostScript Contest 
  126.       8 Computer-specific PostScript 
  127.           8.1 Sun Workstations 
  128. |         8.2 IBM PC 
  129.           8.3 Apple Macintosh 
  130.       9 Encapsulated PostScript 
  131. |         9.1 What is Encapsulated PostScript? 
  132. |         9.2 What are EPSI and EPSF? 
  133.           9.3 How do I convert PostScript to EPS? 
  134.           9.4 How do I get the bounding box of a PostScript picture? 
  135.       10 About The Comp.Lang.PostScript FAQ (and Usenet Guide to PostScript)
  136.           10.1 The PostScript FAQ: What is it? 
  137.           10.2 How to get the FAQ files 
  138.           10.3 How to write a FAQ answer 
  139.           10.4 The FAQ can contain LaTeX and PostScript inserts 
  140.           10.5 Revising the FAQ 
  141.           10.6 How to submit new information 
  142.           10.7 How to add a program description to the FAQ index 
  143.           10.8 How to add a book description to the FAQ 
  144.           10.9 Questions that need answers 
  145.       11 About PostScript 2 
  146.           11.1 What printers run PostScript 2? 
  147.           11.2 Introduction 
  148.           11.3 What is PostScript Level 2? 
  149.           (contains 31 other sections)
  150. |     12 PostScript Interpreters and Utilities 
  151.           12.1 How can I find a program? 
  152.           12.2 How can I browse through PostScript programs? 
  153. |         12.3 Keywords 
  154. |         12.4 Interpreters 
  155. |         12.5 Utilities 
  156.   
  157.  
  158.  
  159. Subject: 1 General Questions 
  160.  
  161.  
  162. Subject: 1.1 What is PostScript? 
  163.  
  164.     PostScript is a graphics programming language. 
  165.  
  166.     It is perhaps the most popular and versatile language for printers, 
  167.     being used in printers world-wide. It is capable of drawing to 
  168.     computer screens and any kind of drawing device. PostScript is 
  169.     interpreted, stack based and untyped, like the computer language 
  170.     FORTH. 
  171.  
  172.     A number of programmers write PostScript programs directly for a 
  173.     variety of drawing applications. However, PostScript programs are 
  174.     usually documents meant to be printed that have been generated by a 
  175.     program written in some compiled language. 
  176.  
  177.  
  178. Subject: 1.2 How can I tell how many pages my document will have? 
  179.  
  180.     The easiest way to count pages is view your document on-line with a 
  181.     PostScript previewer. Some previewers like Ghostview and GSPreview 
  182.     count the pages for you. (See Section 12, ``PostScript Interpreters 
  183.     and Utilities''.) 
  184.  
  185.     If your document is generated by a professional program, you should 
  186.     be able to just count the number of ``%%Page:'' comments 
  187.     imbedded in the document. With UNIX you can type 
  188.   
  189.   grep -c %%Page document.ps
  190.   
  191.     to do this counting. (See Section 9, ``Encapsulated PostScript''.) 
  192.  
  193.     The only completely reliable way to count pages is to ask the 
  194.     printer. PostScript printers maintain a page counter that can be 
  195.     queried before and after the job is printed, and the page count is 
  196.     a simple subtraction. This tends to require rather sophisticated 
  197.     spooling systems and a communications channel that is 
  198.     bidirectional. However, some printers allow you to submit jobs on 
  199.     one port, and issue queries on another. Experts using a level 2 
  200.     printer can use the SerialOff.PS and SerialEHandlder.ps programs to 
  201.     communicate bidirectionally to the printer. 
  202.  
  203.  
  204. Subject: 1.3 How can I print just one page or a few pages from a big 
  205.     document? How can I print pages in reverse order? 
  206.  
  207.     Try using a host-specific program, like the UNIX command psrev, 
  208.     which is part of the TranScript suite of software from Adobe 
  209.     Systems. Or use the more general utilities Ghostview, psutils or 
  210.     psxlate. 
  211.  
  212.     There is no guarantee that a given PostScript document can be split 
  213.     in such a manner. The reason is that some programs which generate 
  214.     PostScript code don't conform to the Adobe Document Structuring 
  215.     Conventions (DSC). (See Section 9, ``Encapsulated PostScript''.) A 
  216.     notable example of this is Microsoft Word. 
  217.  
  218.  
  219. Subject: 1.4 How can I print more than one page per sheet of paper? 
  220.  
  221.     Use psnup or pstext or enscript. 
  222.  
  223.     These programs redefine the PostScript ``showpage'' command to do 
  224.     multiple PostScript pages per physical page. If one program doesn't 
  225.     work with a complex document, try out other ones. 
  226.  
  227.  
  228. Subject: 1.5 How can I edit a PostScript picture? 
  229.  
  230.     If you know the PostScript programming language, just use any text 
  231.     editor to edit the code directly. 
  232.  
  233.     If you want to do it visually, you can use Canvas on the Macintosh. 
  234.  
  235.  
  236. Subject: 1.6 How can I print PostScript on a non-PostScript printer? 
  237.  
  238.     You need a tool that converts to something that your printer knows 
  239.     how to print. Use Freedom of Press, GhostScript, hp2pbm, pageview, 
  240.     TScript, or UltraScript. 
  241.  
  242. Subject: 2 Printers 
  243.  
  244.  
  245. Subject: 2.1 How can I get my printer to talk back to me? 
  246.  
  247.     Experts using a level 2 printer can use the SerialOff.PS and 
  248.     SerialEHandlder.ps programs to communicate bidirectionally to the 
  249.     printer. 
  250.  
  251.  
  252. Subject: 2.2 Should I leave my printer on? 
  253.  
  254.     The general consensus seems to be that most computer equipment 
  255.     lasts longer if left on. This presents less thermal stress to the 
  256.     components. 
  257.  
  258.  
  259. Subject: 2.3 How do I suppress the power-on start page? 
  260.  
  261.     Disabling the start page is described in your printer's PostScript 
  262.     supplement. The most common sequence is ``serverdict begin 0 
  263.     exitserver statusdict begin false setdostartpage end''. 
  264.  
  265.  
  266. Subject: 2.4 How do I make a downloaded font ``persistent''? 
  267. |
  268. |  
  269. |  %!PS-Adobe-2.0 ExitServer
  270. |  %%BeginExitServer: 0
  271. |  serverdict begin 0 exitserver
  272. |  %%EndExitServer
  273. |  % Test for existence of font, abort if present.
  274. |  % This won't work on a printer with a hard disk!
  275. |  /str 32 string def
  276. |  /Eurostile dup FontDirectory exch known
  277. |  { str cvs print ( is already loaded!\n) print flush quit }
  278. |  { (loading font ) print str cvs print (\n) print flush }
  279. |  ifelse
  280. |  %% Font follows...
  281. |  
  282. |   The part following " Eurostile to the name of the font. The default 
  283. |   PFA behavior is to use up additional VM for the new copy if another 
  284. |   copy has already been downloaded. 
  285.  
  286.  
  287. Subject: 2.5 How do I remove a persistent (``permanent'') downloaded font? 
  288.  
  289.     One trick for removing a persistent font (this requires that you 
  290.     knew you would need to remove it before you downloaded it) is to 
  291.     issue a ``serverdict begin 0 exitserver /magic-cookie save def'' 
  292.     before downloading and sending ``serverdict begin 0 exitserver 
  293.     magic-cookie restore'' when you want to reclaim all VM used since 
  294.     the first download. The downside of this is that is uses up a save 
  295.     level, but this is usually not a problem. 
  296.  
  297.  
  298. Subject: 2.6 How do I reset the printer without power-cycling? 
  299.  
  300.     Most printers can be reset by issuing "serverdict begin 0 
  301.     exitserver systemdict /quit get exec". 
  302.  
  303.  
  304. Subject: 2.7 About saving files 
  305.  
  306.     Adobe recommends that driver writers do not put EOT (control-D) 
  307.     into files when saving to disk. Normally, the EOT is a part of the 
  308.     protocol for parallel and serial ports and never hits the 
  309.     PostScript interpreter. 
  310.  
  311.     Drivers that do embed EOD can create problems for devices that 
  312.     allow other communication methods (e.g. AppleTalk, Ethernet, and 
  313.     SCSI) where the EOT is not part of the communications protocol. It 
  314.     is useful to redefine EOT in these instances so that the 
  315.     interpreter does not generate an error. The recommended 
  316.     redefinition is: 
  317.  
  318.   
  319.                    (\004) cvn {} def
  320.   
  321.     This should convert any stand-alone embedded EOTs into a null 
  322.     procedure. 
  323.  
  324.  
  325. Subject: 2.8 What's the control-D business? 
  326.  
  327. |   PostScript printers communicating over serial lines use control-D 
  328. |   as an end of job indicator. The host computer should then wait for 
  329. |   the printer to send a control-D back to indicate that the job has 
  330. |   finished. Managing the serial protocol between host and printer 
  331. |   should be done by some form of print service, but if you're unsure 
  332. |   whether your print service is doing it, it's an idea to send one 
  333. |   yourself. 
  334. |
  335. |   PC type computers frequently do not have any kind of printer 
  336. |   manager and applications end up sending control-D characters to the 
  337. |   printer, sometimes before and after a job. PC applications 
  338. |   frequently embed a control-D as the first character in the print 
  339. |   file, presumably to flush out any other jobs, and thereby breaking 
  340. |   the Adobe Document Structuring Conventions. 
  341. |
  342. |   If you want to prevent applications from doing this, you could use 
  343. |   a spooler which would look at the end of every outgoing file and 
  344. |   drop the control-D on the end if there happened to be one. 
  345. |
  346. |   If you want a spooler, check out lprps. 
  347.  
  348.  
  349. Subject: 2.9 Why does the printer say ``still busy'' when my document is 
  350.     done printing? 
  351.  
  352. |   Sometimes when you finish a print job, the printer "Ready" light 
  353. |   keeps flashing for a minute or so. Somehow, the printer has 
  354. |   received some character(s) after the control-D which was sent 
  355. |   immediately after the PostScript file. The printer took these 
  356. |   character(s) to be another program, and eventually timed-out while 
  357. |   waiting for the rest of it. This can happen because of the host not 
  358. |   waiting for the printer to finish. 
  359.  
  360.  
  361. Subject: 2.10 How should I set up my spoolers? 
  362.  
  363.     Since PostScript usually is prefixed with ``%!'', it's easy to 
  364.     educate your spooler to autoselect between passing raw PostScript 
  365.     through to the printer or doing an "ASCII-to-PostScript" conversion 
  366.     first. There are many packages that will do this, including 
  367.     Transcript and psxlate. 
  368.  
  369.     Unfortunately, many PostScript applications generate PostScript 
  370.     without a proper "%!" magic cookie. 
  371.  
  372.     The spooler should be responsible for transmitting the ``job 
  373.     termination code'' (a control-D on serially-connected printers) to 
  374.     the printer, not the application. Do yourself a favor and disable 
  375.     (or filter out) control-Ds in your applications and generate them 
  376.     in the spooler. This will be far more reliable in the face of 
  377.     arbitrary input. 
  378.  
  379.  
  380. Subject: 2.11 What are PPD files? 
  381. |
  382. |   Adobe Postscript Printer Description (PPD) files describe how to 
  383. |   use the special features for a specific Postscript printer. They 
  384. |   are suppose to be human-readable, but they are really only readable 
  385. |   by PostScript gurus. It is the responsibility of the printer 
  386. |   manufacturer to supply PPD files. However, the Adobe mail server 
  387. |   has many of them. (see the Section 6, ``About Adobe'') 
  388.  
  389. Subject: 3 Formats and Conversions 
  390.  
  391.     This section describes all formats that can be converted to and 
  392.     from PostScript, and how to convert them. Encapsulated PostScript 
  393.     and Fonts have their own sections. 
  394.  
  395.  
  396. Subject: 3.1 How can I convert PostScript to some other graphics format? 
  397.  
  398.     Since PostScript is not just a picture-description language, but in 
  399.     fact a complete programming language, you will need a complete 
  400.     PostScript interpreter to convert or display a PostScript graphic. 
  401.     (See Section 12, ``PostScript Interpreters and Utilities''.) 
  402.  
  403.     Try using TranScript. 
  404.  
  405.  
  406. Subject: 3.2 How can I convert DVI to PostScript? 
  407.  
  408.     Use dvips. 
  409.  
  410.  
  411. Subject: 3.3 How can I convert HP Laserjet language (PCL) to PostScript? 
  412.  
  413.     Use lj2ps for simple PCL. Alternatively, another lj2ps, from 
  414.     psroff3.0, is a little more complete. 
  415.  
  416.     hp2pbm can convert all of PCL4 (up to and including rasters, 
  417.     downloaded fonts and macros). 
  418.  
  419.  
  420. Subject: 3.4 How can I convert TeX PK format to PostScript? 
  421.  
  422.     Psroff3.0 contains programs that can convert TeX PK format or HP 
  423.     SFP format fonts into PostScript bitmap fonts. While bitmap bfonts 
  424.     scale poorly, this is sometimes of use in special circumstances. 
  425.  
  426.  
  427. Subject: 3.5 How do I embed PostScript into troff? 
  428.  
  429.     Most troffs can be ``coerced'' into including PostScript figures. 
  430.     The best approach is a configuration that takes EPS PostScript and 
  431.     can automatically scale it, or tell troff how big the picture is. 
  432.     Groff and DWB 3 have this built in. 
  433.  
  434.     psfig is an add-on EPS inclusion handler that can add this 
  435.     capability to other versions of troff, provided that a compatible 
  436.     PostScript driver is used (Psroff 3.0 for ditroff or CAT troff, 
  437.     Transcript for ditroff). See the comp.text FAQ for more detail. 
  438.  
  439.  
  440. Subject: 3.6 How do I embed PostScript into LaTeX or TeX? 
  441.  
  442.     You should use an add-on program for seamless PostScript inclusion. 
  443.  
  444.     For generic PostScript in a professional document, use psfig. 
  445.  
  446.     If your LaTeX is simple, but your PostScript is fancy, try using 
  447.     LameTeX. 
  448.  
  449.     If you need a good compromise, use pstricks. 
  450.  
  451.     For more detail, see the comp.text.tex FAQ. 
  452.  
  453.  
  454. Subject: 3.7 How can I convert an image to PostScript? 
  455.  
  456.     Try PBMPLUS. 
  457.  
  458.     To convert an image to PostScript in X windows, you can display the 
  459.     image on the screen and then use ``xpr -device ps'' in the 
  460.     resulting X11 window. For example, to convert GIF to PostScript, 
  461.     use xv or xshowgif (ftp from bongo.cc.utexas.edu (128.83.186.13)) 
  462.     and then xpr. 
  463.  
  464.     A more general alternative in X windows would be to use the PPM, 
  465.     PGM and PBM utilities in the X11R4 and X11R5 distributions. 
  466.  
  467.  
  468. Subject: 3.8 How can I convert ASCII text to PostScript? 
  469.  
  470.     Unless your printer is smart about raw ASCII, you can't just send 
  471.     the ASCII to a PostScript printer, because the printer will attempt 
  472.     to interpret your ASCII file as PostScript code. You need a program 
  473.     which will wrap some PostScript code around your ASCII file. 
  474.  
  475.     Try any of the following programs: asciiprint.ps, ato2pps, cz, 
  476.     ETSR, i2ps, lpp, lwf, POSTPRN, printer, psf, psfx80, PSR, ps2txt, 
  477.     pstext, swtext, text2ps, TranScript, spike.ps, enscript, nenscript, 
  478.     a2ps, asc2ps, ascii2ps, crossword.ps, double.ps, landscape.ps, 
  479.     numbered.ps, portrait.ps, or wide.ps. 
  480.  
  481.  
  482. Subject: 3.9 How can I convert PostScript to ASCII? 
  483. |
  484. |    In general, when you say ``I want to convert PostScript to ASCII'' 
  485. |    what you really mean is ``I want to convert MacWrite (which makes 
  486. |    PostScript output) to ASCII'' or ``I want to convert somebody's TeX 
  487. |    document (which I have in PostScript) to ASCII''. 
  488. |
  489. |    Unfortunately, programs like these (if they're smart) do a lot of 
  490. |    fancy stuff like kerning, which means that where they would 
  491. |    normally execute the postscript command for 
  492. |
  493. |  
  494. |      ``print water buffalo''
  495. |  
  496. |    instead they execute the postscript command for 
  497. |
  498. |  
  499. |      ``print wat''      (move a little to get the spacing *just* right)
  500. |      ``print er''       (move a little to get the spacing *just* right)
  501. |      ``print buff''     (move a little to get the spacing *just* right)
  502. |      ``print alo''      (move a little to get the spacing *just* right)
  503. |  
  504. |    So if I write a program to look through a PostScript file for 
  505. |    strings, like ps2ascii.pl, It can't tell where the words really 
  506. |    end. Here my program would see 4 strings 
  507. |
  508. |  
  509. |  ``wat'' ``er'' ``buff'' ``alo''
  510. |  
  511. |    And it doesn't see any difference between the spacing between 
  512. |    ``buff'' and ``alo'' (not a word break) and the spacing between 
  513. |    ``er'' and ``buff'' (a real word break). 
  514. |
  515. |    The problem is that PostScript for text formatting is usually 
  516. |    produced machine generated by a text formatter. A PostScript 
  517. |    generator like dvips might have a special command like ``boop'' 
  518. |    that differentiates between a real world break and a fake one. But 
  519. |    every text formatter that generates PostScript has their own name 
  520. |    for the ``boop'' command. 
  521. |
  522. |    So you really want a ``PostScript -> ASCII converter for dvips 
  523. |    output''. 
  524. |
  525. |    The only general solution I can see would be to redefine the show 
  526. |    operator to print out the currentpoint for every letter being 
  527. |    printed, like gs2asc, and then make up an ASCII page based on this 
  528. |    by sticking ASCII characters where they go in a two-dimensional 
  529. |    array. That would convert PostScript to ASCII "formatted". 
  530. |
  531. |    But even that wouldn't solve the problem, because special bitmap 
  532. |    fonts and and standard fonts like Symbol don't always print a "P" 
  533. |    when you say the letter "P". Sometimes they print the greek Pi 
  534. |    symbol or a chess piece or a ZapfDingBat. 
  535.  
  536.     Use ps2a, ps2ascii, ps2txt, ps2ascii.ps or ps2ascii.pl. 
  537.  
  538.     For UNIX users, the following csh command will extract all of the 
  539.     strings from a PostScript file and print them. 
  540.  
  541.   
  542.   % usage: unps < infile.ps > outfile.txt
  543. alias unps \(sed \
  544.  \''s/%.*$//g;s/^[ \t]*[^()]*$//g;s/^[^(]*(//g;s/)[^(]*(/ /g;s/)[^)]*$//g;'\' \
  545.  \| tr '\\012' '\\040' \| tr -s '\\040' '\\040' \; echo \'\'\)
  546.   
  547. Subject: 4 Fonts 
  548.  
  549.     This section answers questions about fonts as they pertain to 
  550.     PostScript. See the comp.fonts FAQ for more information about 
  551.     fonts. 
  552.  
  553.  
  554. Subject: 4.1 What are .PFB and .PFA files? 
  555.  
  556.     ``PFB'' stands for Printer Font Binary, and is a binary format in 
  557.     which Adobe Type 1 font programs are usually distributed for IBM PC 
  558.     and compatibles. Many application programs support fonts in this 
  559. |   format, and refer to them as ``downloadable''. The Macintosh uses a 
  560. |   different binary storage format than does the PC. 
  561.  
  562.     PFB files are compressed, and as a result, cannot be sent directly 
  563.     to a PostScript printer. Application programs like dvips which use 
  564.     fonts in this format uncompress the font before sending it to the 
  565.     printer. If you would like to use a font which is in PFB format, it 
  566.     is necessary to uncompress it first, to make a PFA file. Adobe 
  567. |   Systems supply a font downloader for PC's which turns the PFB 
  568. |   format into PFA format on the fly as it's being downloaded. 
  569.  
  570.     ``PFA'' stands for Printer Font ASCII, which is the uncompressed 
  571.     version of a PFB file. Once you have the PFA file, just send it to 
  572.     the printer ahead of your file, and use the font like any other. 
  573.     There are several programs which can do the conversion from PFB to 
  574.     PFA for you. Try t1utils. 
  575.  
  576.  
  577. Subject: 4.2 How can I convert a PostScript font to TeX's PK format? 
  578.  
  579.     Use ps2pk or try out the GNU font utilities in fontutils. 
  580.  
  581.  
  582. Subject: 4.3 Why are Adobe fonts hidden? 
  583.  
  584.     In PostScript level 1, Adobe's fonts were hidden because they 
  585.     didn't want people pirating copies instead of paying for them. 
  586.     That's why you can't do a pathforall on a charpath. 
  587.  
  588.     PostScript Level Two has removed the restriction, in the words of 
  589.     the new Red Book, ``for most fonts''. There will still be some 
  590.     vendors who will want to restrict access. Japanese font vendors, 
  591.     for example, are concerned about piracy -- given the work that goes 
  592.     into an 8,000-character Kanji font. 
  593.  
  594.  
  595. Subject: 4.4 How do I get bitmap representations of Adobe fonts? 
  596.  
  597.     On the IBM PC, use the Font Foundary program included with the 
  598.     font. If you don't have it, contact Adobe for an upgrade. 
  599.  
  600.  
  601. Subject: 4.5 What are some good ftp sites for fonts? 
  602.  
  603.   
  604.   ftp.cs.umb.edu
  605.   sumex-aim.stanford.edu
  606.   archive.umich.edu
  607.   ftp.cica.indiana.edu    /pub/pc/win3/fonts
  608.   colonsay.dcs.ed.ac.uk   /pub/postscript/fonts
  609.   yak.css.itd.umich.edu
  610.   
  611.   
  612.   For the NeXT platform, fonts are available on the NeXT-FTP-archives,
  613.           sonata.cc.purdue.edu :/pub/next/graphics/fonts
  614.           fiasko.rz-berlin.mpg.de :/pub/next/fonts
  615.   
  616.     For Macintosh, look in sumex-aim.stanford.edu, 
  617.     mac.archive.umich.edu, and ftp.cs.umb.edu (192.12.26.23), in 
  618.     pub/tex/ps-screenfonts.tar.Z. 
  619.  
  620.     Color PostScript samples and many other PostScript programs are 
  621.     available from irisa.irisa.fr. 
  622.  
  623.  
  624. Subject: 4.6 How can I re-encode a font? 
  625.  
  626.     See ddev.ps for an example for code that does this. 
  627.  
  628.  
  629. Subject: 4.7 What's the difference between a Type 1 and a Type 3 font? 
  630.  
  631.     The Type 1 font format has nothing to do with TrueType, which is 
  632.     another font format defined by Apple. The Type 1 font format has 
  633.     been around quite a while, and is used on a wide variety of 
  634.     platforms to obtain scalable fonts. 
  635.  
  636.     The Type 1 font format is a compact way of describing a font 
  637.     outline using a well-defined language that can be quickly 
  638.     interpreted. The language contains operations to provide the 
  639.     rasterizer with additional information about a character, known as 
  640.     hints. The Type 1 font format is defined in the book "The Adobe 
  641.     Type 1 Font Format", also known as the black-and-white book, for 
  642.     the colors on its cover. 
  643.  
  644.     Most clone interpreters will not have Adobe's proprietary rendering 
  645.     technology which interprets font hints to improve the appearance of 
  646.     fonts shown at small sizes on low-resolution devices. The 
  647.     exceptions are PowerPage and UltraScript. 
  648.  
  649.     The Type 3 font format is a way of packaging up PostScript 
  650.     descriptions of characters into a font, so that the PostScript 
  651.     interpreter can rasterize them. It is often easier to create a Type 
  652.     3 font program by hand than to create the corresponding Type 1 font 
  653.     program. Type 3 font programs have access to the entire PostScript 
  654.     language to do their imaging, including the 'image' operator. They 
  655.     can be used for bitmapped fonts, although that is certainly not a 
  656.     requirement. The Type 3 font format contains no provisions for 
  657.     'hinting', and as such Type 3 font programs cannot be of as high a 
  658.     quality at low resolutions as the corresponding Type 1 font 
  659.     program. 
  660.  
  661.     Both formats are scalable formats, and both can be run on any 
  662.     PostScript interpreter. However, because of the requirement that a 
  663.     Type 3 font program have a full PostScript interpreter around, Type 
  664.     3 font programs cannot be understood by the Adobe Type Manager. 
  665.     Only Type 1 font programs can. 
  666.  
  667.     Because of Adobe Type Manager's wide availability on a large number 
  668.     of platforms (PC, Mac, and Unix), the Type 1 font format makes an 
  669.     excellent cross-platform scalable font standard. 
  670.  
  671.  
  672. Subject: 4.8 What vendors sell fonts for PostScript printers? 
  673.  
  674.     PostScript font vendors are many and varied. Here is a partial 
  675.     list. 
  676.  
  677.  
  678.  
  679.     Adobe Systems 
  680.       sells a variety of fonts. With the huge number of third-party 
  681.       Type 1 vendors, in recent years Adobe have specialized in 
  682.       creating their own ``Adobe Originals'' -- high-quality fonts, 
  683.       some of which are their renditions of classic faces (Adobe 
  684.       Garamond) and some of their own devising (Stone, Utopia, ...). 
  685.       Adobe Systems, 1585 Charleston Road, Mountain View, CA 94039. 
  686.       (415) 961-4400 
  687.  
  688.  
  689.     AGFA Compugraphic, 
  690.       90 Industrial Way, Wilmington, Massachusetts 01887. (508) 
  691.       658-5600. 
  692.  
  693.  
  694.     Bear Rock Technologies 
  695. |     specializes in bar code fonts. 4140 Mother Lode Drive, Suite 100, 
  696.       Shingle Springs California 95682. 
  697.  
  698.  
  699.     Bitstream, 
  700.       Athenaeum House, Cambridge, MA 02142. (617) 497-6222. 
  701.  
  702.  
  703.     Casady and Greene, 
  704.       22734 Portola Drive, Salinas, CA 93908. (408) 484-9228. 
  705.  
  706.  
  707.     Ecological Linguistics, 
  708.       specializes in non-Roman alphabets. Ecological Linguistics, P. O. 
  709.       Box 15156, Washington D. C. 20003. 
  710.  
  711.  
  712. |    Emigre Graphics 
  713. |     4475 "D" Street / Sacramento CA 95819 (800) 944 9021 ] Over 70 
  714. |     faces, all PostScript Type 1 ATM compatible, including the 
  715. |     omnipresent Modula and infamous Template Gothic. Almost all faces 
  716. |     are "must haves" for graphic designers. Call for free catalog. 
  717.  
  718.  
  719.     Image Club, 
  720.       # 5 1902 11th St Southeast, Calgary, Alberta T2G 2G2, Canada. 
  721.       (403) 262-8008. 
  722.  
  723.  
  724.     Lanston 
  725.       specializes in display faces. 
  726.  
  727.  
  728.     Letraset 
  729.       specializes in fancy kinds of script fonts, Letraset, 40 
  730.       Eisenhower Drive, Paramus, New Jersey 07652. (201) 845-6100 
  731.  
  732.  
  733.     Linguists Software 
  734.       specializes in non-Roman alphabets (Farsi, Greek, Hangul, Kanji, 
  735.       etc.) Linguists Software, P. O. Box 580, Edmonds, Washington 
  736.       98020-0580. (206) 775-1130. 
  737.  
  738.  
  739.     Monotype, 
  740.       53 West Jackson Boulevard, Suite 504, Chicago, IL 60604. 
  741.  
  742.  
  743.     Page Studio Graphics, 
  744.       Chandler, Arizona, specialize in symbols fonts such as Mac icons, 
  745.       keyboards, and others, Page Studio Graphics, 3175 North Price 
  746.       Road, # 1050, Chandler, Arizona 85224. (602) 839-2763. 
  747.  
  748.  
  749.     RightBrain Software, 
  750.       Palo Alto, CA (415 326-2974) carry the Adobe Type library for the 
  751.       NeXT platform. If you're working on NeXT, getting fonts in the 
  752.       correct form with all the ancillary information and downloaders 
  753.       and such is important. You can convert a Mac font to NeXT (PFA) 
  754.       format, but the NeXT demands an AFM file as well, and many Mac/PC 
  755.       font vendors omit AFM files because Mac/PC apps don't use them. 
  756.       For Adobe fonts for the NeXT, save yourself a lot of hassle by 
  757.       getting the fonts from RightBrain -- they often have sales. 
  758.  
  759.  
  760.     The Font Company 
  761.  
  762.  
  763.     TreacyFaces 
  764.  
  765.  
  766.     URW 
  767.       supplies high-quality fonts at low prices. They are also the 
  768.       creators of the top of the line font creation and editing 
  769.       software called Ikarus. URW, 4 Manchester Street, Nashua, New 
  770.       Hampshire 03060. (603) 882-7445. 
  771.  
  772.     Many more font vendors exist. Look in magazines and other sources. 
  773.     Look in U & lc, published by ITC, for long lists of vendors. 
  774.  
  775.  
  776. Subject: 4.9 What are ATM fonts? 
  777.  
  778.     There has been a rash of misunderstanding about the nature of Type 
  779.     1 fonts and what people call ATM fonts. ATM fonts are Adobe Type 1 
  780.     fonts. ATM stands for Adobe Type Manager -- a utility to render 
  781.     smooth characters on Macintosh and PC screens, from font outlines 
  782.     (Type 1 fonts) instead of using bitmap fonts. In one sense, there's 
  783.     no such thing as an ``ATM font'' -- ATM interprets Type 1 fonts, so 
  784.     there's no need to create a new name. A correctly constructed Type 
  785.     1 font can be interpreted by ATM. 
  786.  
  787.  
  788. Subject: 4.10 What are Multiple Master Fonts? 
  789.  
  790.     Multiple Master Fonts are an extension to the Adobe font format. 
  791.     providing the ability to interpolate smoothly between several 
  792.     ``design axes'' from a single font. Design axes can include weight, 
  793.     size, and even some whacko notions like serif to sans serif. 
  794.     Adobes' first Multiple Master Font was Myriad -- a two-axis font 
  795.     with WEIGHT (light to black) on one axis, and WIDTH (condensed to 
  796.     expanded) along the other axis. In the case of Myriad, there are 
  797.     four ``polar'' designs at the ``corners'' of the design space. The 
  798.     four designs are light condensed, black condensed, light expanded, 
  799.     and black expanded. 
  800.  
  801.     Given polar designs, you can set up a ``weight vector'' which 
  802.     interpolates to any point within the design space to produce a 
  803.     unique font for a specific purpose. So you can get a ``more or less 
  804.     condensed, somewhat black face''. 
  805.  
  806.  
  807. Subject: 4.11 Do I need a Level Two printer to use Multiple Master Fonts? 
  808.  
  809.     No -- Multiple Master Fonts can be used on any PostScript printer. 
  810.     Multiple Master Fonts need a new PostScript operator known as 
  811.     makeblendedfont. The current crop of Multiple Master Fonts supply 
  812.     an emulation of this operator so the printer doesn't need this 
  813.     operator. 
  814.  
  815.     A short tutorial on Multiple Master Fonts and makeblendedfont 
  816.     appears in PostScript by Example, by Henry McGilton and Mary 
  817.     Campione, published by Addison-Wesley. 
  818.  
  819.  
  820. Subject: 4.12 What are Type 4 fonts? 
  821.  
  822.     Type 4 fonts are actually Type 1 fonts, but stored on hard disk in 
  823.     a special way to save space when they're loaded into printer RAM by 
  824.     findfont. 
  825.  
  826.  
  827. Subject: 4.13 What are Type 5 fonts? 
  828.  
  829.     Type 5 fonts are actually Type 1 fonts, but stored in printer ROM 
  830.     in a special compressed format. They're also known as CROM fonts 
  831.     (for Compressed ROM fonts). 
  832.  
  833.  
  834.                               Acknowledgments 
  835.  
  836.     This FAQ was compiled based heavily on the contributions of and 
  837.     with the help of Henry McGilton, Howard Gayle, Carl Orthlieb, Ed 
  838.     Garay, Robert Lerche, Bruno Hall, and Chris Lewis. 
  839.     Also thanks to contributors Karl Berry, Jerry Black, Charles 
  840.     Cashion, Jim DeLaHunt, Leonard Hamey, Elliotte Harold, Chris 
  841.     Herborth, Steve Kinzler, Bill Lee, Timo Lehtinen, Carl Lydick, Bill 
  842.     Pringle, Tony Valsamidis, and Jamie Zawinski. 
  843.     Special thanks to Ken Porter, who originally compiled and organized 
  844.     this FAQ. 
  845.  
  846.   Ver  Date     Reason
  847.   ----------------------------------------------------------------
  848.   1.00 12-18-90 Creation by Ken Porter
  849.   1.06  5-29-91 expanded on EPS explanation, general updates
  850.   2.00 10-25-92 Brought up to date and expanded, by Jon Monsarrat
  851.   
  852.   
  853.     This FAQ is copyright (C) 1992 by Jonathan Monsarrat. Permission is 
  854.     granted to freely edit and distribute as long as this copyright 
  855.     notice is included. 
  856.  
  857.     This document was written with the LaTeX language and formatted by 
  858.     LameTeX, the PostScript hacker's LaTeX. 
  859.  
  860.     Jonathan Monsarrat 
  861.   
  862. %! Jon Monsarrat   jgm@cs.brown.edu   Brown University %! Obfuscated PostScript
  863. /p 4/f{{}forall moveto gsave{dup 32 mod dup 15 mul rotate sub p div 0 rlineto}
  864. forall fill grestore}def 4 scale 1 def(``f`f`f)dup(  )f( i).3 setgray f/p 8 def
  865. 1 setgray/h(F!6! 2477!W)def h("4)h(,C)h(6O)h(LT)h(^O)h(tC)h(~6)(7!6!"7#$&6!7 #)
  866. (9~)(""""""""""")(}~)(fTV``Vt)(9!)(e!FR"n&44ED-w@-7&&b)(C2)11{f}repeat showpage
  867.